BGD & SGD & MSGD

배치 경사 하강법(Batch Gradient Descent)
전체 학습데이터를 하나의 배치(배치 크기가 n) 을 묶어 학습시키는 경사 하강법

전체 데이터를 통해 학습시키기 때문에 가장 업데이트 횟수가 적다. (1Epoch 당 1회)
전체 데이터를 모두 한 번에 처리하기 때문에, 메모리가 가장 많이 필요하다.
항상 같은 데이터(전체 데이터)에 대해 경사를 구하기 때문에 수렴이 안정적이다.

확률적 경사 하강법(Stochastic Gradient Descent)
전체 학습 데이터 중 랜덤하게 선택된 하나의 데이터로 학습하기 때문에 확률적 경사 하강법이라고 부른다.

반복 또는 온라인 경사 하강법이라고도 부르며, 배치 경사 하강법의 대안으로 인기가 많다.
누적된 오차의 합을 기반으로 가중치를 업데이트하는 것이 아닌 각 훈련 샘플에 대해 조금씩 가중치를 업데이트 한다.(배치 크기 1)

배치 경사 하강법보다 더 자주 가중치가 업데이트 되기 때문에 수렴 속도가 훨씬 빠르다.
그레이디언트가 하나의 훈련 샘플을 기반으로 계산되므로 오차의 궤적은 배치 경사 하강법보다 훨씬 어지럽다.
비선형 비용 함수를 다룰 때, 얕은 지역 최솟 값을 더 쉽게 탈출할 수 있는 장점이 있다.(global minimum에 수렴은 어려움)

확률적 경사 하강법은 온라인 학습(online learning)으로 사용할 수 있다.
온라인 학습에서 모델은 새로운 훈련 데이터가 도착하는 대로 훈련 가능하다.
많은 양의 고객 데이터를 처리하는 웹 애플리케이션에 적합하다.

적응적 학습률
고정된 학습률을 시간이 지남에 따라 적응적 학습률로 대체하면, 최솟값에 더욱 가까이 접근할 수 있다.
미니 배치 확률적 경사 하강법(Mini-Batch Stochastic Gradient Descent: MSGD)
SGD와 BGD의 절충안으로, 전체 데이터를 batch_size개씩 나눠 배치로 학습(배치의 크기는 사용자가 지정)

BGD보다 계산량이 적다.
Shooting이 적당히 발생한다.(Local Minimumd을 어느정도 회피)